import { IPSModelObject } from '../ipsmodel-object';
import { IPSLanguageRes } from '../res/ipslanguage-res';
import { IPSSysCss } from '../res/ipssys-css';
import { IPSSysImage } from '../res/ipssys-image';

/**
 *
 * @export
 * @interface IPSCodeItem
 */
export interface IPSCodeItem extends IPSModelObject {
  /**
   * 背景颜色
   * @type {string}
   */
  bKColor: string;

  /**
   * 开始值
   * @type {number}
   */
  beginValue: number;

  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 文本颜色
   * @type {string}
   */
  color: string;

  /**
   * 数据
   * @type {string}
   */
  data: string;

  /**
   * 结束值
   * @type {number}
   */
  endValue: number;

  /**
   * 图标样式
   * @type {string}
   */
  iconCls: string;

  /**
   * 图标样式(X)
   * @type {string}
   */
  iconClsX: string;

  /**
   * 图标路径
   * @type {string}
   */
  iconPath: string;

  /**
   * 图标路径(X)
   * @type {string}
   */
  iconPathX: string;

  /**
   * 代码项集合
   *
   * @type {IPSCodeItem[]}
   */
  getPSCodeItems(): IPSCodeItem[] | null;

  /**
   * 代码项集合
   *
   * @type {IPSCodeItem[]}
   */
  get psCodeItems(): IPSCodeItem[] | null;

  findPSCodeItem(objKey: any): IPSCodeItem | null;

  /**
   * 显示样式
   *
   * @type {IPSSysCss}
   */
  getPSSysCss(): IPSSysCss | null;

  /**
   * 显示样式
   *
   * @type {IPSSysCss}
   */
  get psSysCss(): IPSSysCss | null;

  /**
   * 显示样式（必须存在）
   *
   * @type {IPSSysCss}
   */
  getPSSysCssMust(): IPSSysCss;

  /**
   * 图标对象
   *
   * @type {IPSSysImage}
   */
  getPSSysImage(): IPSSysImage | null;

  /**
   * 图标对象
   *
   * @type {IPSSysImage}
   */
  get psSysImage(): IPSSysImage | null;

  /**
   * 图标对象（必须存在）
   *
   * @type {IPSSysImage}
   */
  getPSSysImageMust(): IPSSysImage;

  /**
   * 文本
   * @type {string}
   */
  text: string;

  /**
   * 文本样式
   * @type {string}
   */
  textCls: string;

  /**
   * 文本语言资源
   *
   * @type {IPSLanguageRes}
   */
  getTextPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 文本语言资源
   *
   * @type {IPSLanguageRes}
   */
  get textPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 文本语言资源（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getTextPSLanguageResMust(): IPSLanguageRes;

  /**
   * 提示信息
   * @type {string}
   */
  tooltip: string;

  /**
   * 提示信息语言资源
   *
   * @type {IPSLanguageRes}
   */
  getTooltipPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 提示信息语言资源
   *
   * @type {IPSLanguageRes}
   */
  get tooltipPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 提示信息语言资源（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getTooltipPSLanguageResMust(): IPSLanguageRes;

  /**
   * 代码项数据
   * @type {string}
   */
  userData: string;

  /**
   * 代码项数据2
   * @type {string}
   */
  userData2: string;

  /**
   * 值
   * @type {string}
   */
  value: string;

  /**
   * 默认代码项
   * @type {boolean}
   * @default false
   */
  default: boolean;

  /**
   * 禁止选择
   * @type {boolean}
   * @default false
   */
  disableSelect: boolean;

  /**
   * 包含开始值
   * @type {boolean}
   * @default false
   */
  includeBeginValue: boolean;

  /**
   * 包含结束值
   * @type {boolean}
   * @default false
   */
  includeEndValue: boolean;

  /**
   * 显示为空白
   * @type {boolean}
   * @default false
   */
  showAsEmtpy: boolean;
}
